home *** CD-ROM | disk | FTP | other *** search
- #!../blt_wish -f
- if [file exists ../library] {
- set blt_library ../library
- }
-
- blt_bitmap define blt.0 {{40 40} {
- 00 00 00 00 00 00 fc 07 00 00 00 04 08 00 00 00 04 04 00 00 00 e4 03 00
- 00 00 64 fe 07 00 00 64 02 04 00 00 e4 03 04 00 00 64 7e 02 00 00 64 1a
- 02 00 00 e4 1b 01 00 00 04 1a 01 00 00 04 1a 01 00 00 fc 1b 02 00 00 0c
- 1a 02 00 00 0c 02 04 00 00 0c 02 f4 03 80 ed fe 07 04 e0 0c 00 20 09 10
- 0c 00 00 12 10 0c 00 00 10 30 00 00 00 19 d0 03 00 00 14 b0 fe ff ff 1b
- 50 55 55 55 0d e8 aa aa aa 16 e4 ff ff ff 2f f4 ff ff ff 27 d8 ae aa bd
- 2d 6c 5f d5 67 1b bc f3 7f d0 36 f8 01 10 cc 1f e0 45 8e 92 0f b0 32 41
- 43 0b d0 cf 3c 7c 0d b0 aa c2 ab 0a 60 55 55 55 05 c0 ff ab aa 03 00 00
- fe ff 00 00 00 00 00 00}
- }
-
- blt_bitmap define blt.1 {{40 40} {
- 00 00 00 00 00 00 fc 07 00 00 00 04 08 00 00 00 04 04 00 00 00 e4 ff 0f
- 00 00 64 06 08 00 00 64 06 08 00 00 e4 ff 04 00 00 64 36 04 00 00 64 36
- 02 00 00 e4 37 02 00 00 04 34 02 00 00 04 34 04 00 00 fc 35 04 00 00 0c
- 04 08 00 00 0c 04 08 00 00 0c fc ef 03 80 ed 01 00 04 e0 0c 00 20 09 10
- 0c 00 00 12 10 0c 00 00 10 30 00 00 00 19 d0 03 00 00 14 b0 fe ff ff 1b
- 50 55 55 55 0d e8 aa aa aa 16 e4 ff ff ff 2f f4 ff ff ff 27 d8 ae aa bd
- 2d 6c 5f d5 67 1b bc f3 7f d0 36 f8 01 10 cc 1f e0 45 8e 92 0f b0 32 41
- 43 0b d0 cf 3c 7c 0d b0 aa c2 ab 0a 60 55 55 55 05 c0 ff ab aa 03 00 00
- fe ff 00 00 00 00 00 00}
- }
-
- blt_bitmap define blt.2 {{40 40} {
- 00 00 00 00 00 00 fc 0f 00 00 00 04 10 00 00 00 04 10 00 00 00 e4 fb 3f
- 00 00 64 0e 20 00 00 64 0e 20 00 00 e4 fb 13 00 00 64 ce 10 00 00 64 ce
- 08 00 00 e4 cb 08 00 00 04 c8 08 00 00 04 c8 10 00 00 fc cf 10 00 00 0c
- 08 20 00 00 0c 08 20 00 00 0c f8 bf 03 80 ed 03 00 04 e0 0c 00 20 09 10
- 0c 00 00 12 10 0c 00 00 10 30 00 00 00 19 d0 03 00 00 14 b0 fe ff ff 1b
- 50 55 55 55 0d e8 aa aa aa 16 e4 ff ff ff 2f f4 ff ff ff 27 d8 ae aa bd
- 2d 6c 5f d5 67 1b bc f3 7f d0 36 f8 01 10 cc 1f e0 45 8e 92 0f b0 32 41
- 43 0b d0 cf 3c 7c 0d b0 aa c2 ab 0a 60 55 55 55 05 c0 ff ab aa 03 00 00
- fe ff 00 00 00 00 00 00}
- }
-
- blt_bitmap define blt.3 {{40 40} {
- 00 00 00 00 00 00 fc 0f 00 00 00 04 f0 ff 00 00 04 00 80 00 00 e4 03 80
- 00 00 64 d6 4f 00 00 64 16 43 00 00 e4 13 23 00 00 64 16 23 00 00 64 16
- 23 00 00 e4 13 43 00 00 04 70 43 00 00 04 00 80 00 00 fc 0f 80 00 00 0c
- f0 ff 00 00 0c 00 00 00 00 0c f8 ff 03 80 ed 07 00 04 e0 0c 00 20 09 10
- 0c 00 00 12 10 0c 00 00 10 30 00 00 00 19 d0 03 00 00 14 b0 fe ff ff 1b
- 50 55 55 55 0d e8 aa aa aa 16 e4 ff ff ff 2f f4 ff ff ff 27 d8 ae aa bd
- 2d 6c 5f d5 67 1b bc f3 7f d0 36 f8 01 10 cc 1f e0 45 8e 92 0f b0 32 41
- 43 0b d0 cf 3c 7c 0d b0 aa c2 ab 0a 60 55 55 55 05 c0 ff ab aa 03 00 00
- fe ff 00 00 00 00 00 00}
- }
-
- blt_bitmap define blt.4 {{40 40} {
- 00 00 00 00 00 00 fc ff ff 03 00 04 00 00 02 00 04 00 00 02 00 e4 33 3f
- 01 00 64 36 0c 01 00 64 36 8c 00 00 e4 33 8c 00 00 64 36 8c 00 00 64 36
- 0c 01 00 e4 f3 0d 01 00 04 00 00 02 00 04 00 00 02 00 fc ff ff 03 00 0c
- 00 00 00 00 0c 00 00 00 00 0c f8 ff 03 80 ed 07 00 04 e0 0c 00 20 09 10
- 0c 00 00 12 10 0c 00 00 10 30 00 00 00 19 d0 03 00 00 14 b0 fe ff ff 1b
- 50 55 55 55 0d e8 aa aa aa 16 e4 ff ff ff 2f f4 ff ff ff 27 d8 ae aa bd
- 2d 6c 5f d5 67 1b bc f3 7f d0 36 f8 01 10 cc 1f e0 45 8e 92 0f b0 32 41
- 43 0b d0 cf 3c 7c 0d b0 aa c2 ab 0a 60 55 55 55 05 c0 ff ab aa 03 00 00
- fe ff 00 00 00 00 00 00}
- }
-
-
- set command { vmstat 1 }
- #set command { find ../.. -print }
-
- set animate(index) 0
- set animate(interval) 200
- #set animate(colors) { #ff8813 #ffaa13 #ffcc13 #ffff13 #ffcc13 #ffaa13 #ff8813 }
- blt_bitmap define blt.5 [blt_bitmap data blt.3]
- blt_bitmap define blt.6 [blt_bitmap data blt.2]
- blt_bitmap define blt.7 [blt_bitmap data blt.1]
-
- proc Animate {} {
- global animate
- if { [info commands .logo] != ".logo" } {
- set animate(index) 0
- return
- }
- if { $animate(index) >= 0 } {
- .logo configure -bitmap blt.$animate(index)
- incr animate(index)
- if { $animate(index) >= 7 } {
- set animate(index) 0
- }
- after $animate(interval) Animate
- }
- }
-
- proc GetStats { command varArr } {
- global $varArr
-
- set new [format "%s(update)" $varArr]
- set err [format "%s(errors)" $varArr]
- set out [format "%s(output)" $varArr]
-
- trace variable $new w DisplayStats
- eval "blt_bgexec \
- -keepnewline \
- -errorvar $err \
- -updatevar $new \
- $out $command"
- }
-
- proc DisplayStats { name1 name2 how } {
- upvar #0 $name1 arr
-
- .text insert end $arr($name2)
- set arr($name2) {}
- set textlen [expr int([.text index end])]
- scan [.vscroll get] "%s %s %s %s" total window first last
- if { $textlen > $total } {
- .text yview [expr $textlen-$window]
- }
- update idletasks
- }
-
- #
- # Do a quick test of the command to see how long the output is going to be
- #
- catch "exec [lindex $command 0]" output
- set output [split $output \n]
- set length [string length [lindex $output 0]]
- if { $length > 80 } {
- set length 110
- } else {
- set length 80
- }
-
- option add *text.yScrollCommand { .vscroll set }
- option add *text.relief sunken
- option add *text.width $length
- option add *text.height 10
- option add *text.borderWidth 2
- option add *vscroll.command { .text yview }
- option add *vscroll.minSlider 4p
- option add *quit.command { exit }
- option add *quit.text { quit }
- option add *stop.command { global results; set results(output) {} }
- option add *stop.text { stop }
- option add *logo.relief sunken
- option add *logo.padX 4
- option add *title.text "Virtual Memory Statistics"
- option add *title.font -*-Helvetica-Bold-R-*-*-14-*-*-*-*-*-*-*
-
- set visual [winfo screenvisual .]
- if { $visual != "staticgray" && $visual != "grayscale" } {
- option add *text.background lightblue
- option add *text.foreground blue
- option add *quit.background red
- option add *quit.foreground white
- option add *stop.background yellow
- option add *stop.foreground navyblue
- option add *logo.background beige
- option add *logo.foreground brown
- }
-
- # Create widgets
- text .text
- scrollbar .vscroll
- button .quit
- button .stop
- label .logo
- label .title
-
- # Layout widgets in table
- blt_table . \
- .title 0,0 -columnspan 4 -fill both \
- .text 1,0 -columnspan 3 -fill both \
- .vscroll 1,3 -fill y \
- .logo 2,0 -anchor w -padx 10 -reqheight .6i -pady 4 \
- .stop 2,1 -anchor e -reqwidth .75i -reqheight .3i \
- .quit 2,2 -anchor e -reqwidth .75i -reqheight .3i
- blt_table column . configure { 1 2 } -width 1i
- blt_table column . configure { 3 } -resize none
- wm min . 0 0
-
- # Start command using "results(output)" as the trigger variable
- set results(output) {}
- GetStats $command results
- Animate
- tkwait variable results(output)
-
- # Turn off animation
- puts stderr "Turning off vmstat (stderr=\"$results(errors)\")"
- set animate(index) -1
-
-